import React, { Component } from 'react'

export default class Test extends Component {
  state = {
    msg: 'hello',
  }
  // 注意: 只在更新阶段执行
  shouldComponentUpdate(nextProps, nextState) {
    // 注意 :在其他的生命周期钩子中,如果有形参也几乎都是旧的props和旧的state数据,新数据通过this.state和this.props获取.但是当前hook,刚好相反, 新的props和新的state数据是通过形参接收的.旧的 props和旧 的state是通过this.props和this.state接收的
    // 获取旧数据: this.state 或 this.props
    // 获取新数据:nextState 或 nextProps
    // return true
    // console.log(nextProps, this.props)
    return nextProps.c !== this.props.c || nextState.msg !== this.state.msg
  }
  render() {
    console.log('test的render执行了')
    return (
      <div>
        Test组件,{this.props.c}, {this.state.msg}
        <button
          onClick={() => {
            this.setState({
              msg: '还有3分钟下课',
            })
          }}
        >
          test-按钮
        </button>
      </div>
    )
  }
}
